import axios from "axios"
import router from "../router/index.js";

var instance = axios.create({
    headers: {
        'Content-Type': 'application/json',
    },
    baseURL: 'http://127.0.0.1:8080/',
    // withCredentials:true            //开启
})

// 拦截器：将token加入request的headers中
instance.interceptors.request.use(config=>{
    if(localStorage.getItem('token')){
        config.headers.common['Authorization'] = 'JWT ' +  localStorage.getItem('token')
    }
    return config
})

// 如果发送的请求，响应的信息内有错误，会回调 error 中的内容
instance.interceptors.response.use(
    response => {
      return response;
    },
    error => {
      // 如果请求结果状态码是 401 的话，代表校验失败
      // 此时需要跳转到登陆界面，同时清理 token
      if (error.response) {
        if (error.response.status == 401) {
          // 清除 token
          localStorage.removeItem("token");
          // 替换最上层路由的页面
          router.replace({ name: "Login" });
          // 拒绝请求
          return Promise.reject(error);
        }
      }
    }
);

export default instance